#ifndef _FINACE_TYPE_ENUM_H_
#define _FINACE_TYPE_ENUM_H_

#include<stdint.h>
#define ENUM_Exchange \
X(SZ=0, "SZ") \
X(SH=1, "SH") \
X(HKE, "HK") \
X(CFFEX, "CFFEX") \
X(SHFE, "SHFE") \
X(DCE, "DCE") \
X(CZCE, "CZCE") \
X(INE, "INE") \


#define X(E, name) E,
enum class Exchange :uint8_t {
	ENUM_Exchange
};
#undef X


#define X(E, name) name,
static char const* Exchange_code[]{
	ENUM_Exchange
};
#undef X

#define ENUM_Currency \
X(CNY=1, "CNY") \
X(HKD, "HKD") \

#define X(E, name) E,
enum class Currency :uint8_t {
	ENUM_Currency
};
#undef X

#define ENUM_ContractType \
X(STK=1, "STK") \
X(CBD, "CBD") \
X(ETF, "ETF") \
X(IND, "IND") \
X(FUT, "FUT") \

#define X(E, name) E,
enum class ContractType :uint8_t {
	ENUM_ContractType
};
#undef X


#define X(E, name) name,
static char const* ContractType_code[]{
	ENUM_ContractType
};
#undef X


#define ENUM_BarSize \
X(Day1=0, "1d") \
X(Min1=1, "1m") \


//必须保证连续
#define X(E, name) E,
enum class BarSize :uint8_t {
	ENUM_BarSize

};
#undef X

#define X(E, name) name,
static char const* BarSize_code[]{
	ENUM_BarSize

};
#undef X




#endif
